home *** CD-ROM | disk | FTP | other *** search
- LIFE3 version 1.2
- copywrite 1987 by Bob Benedict
-
-
- LIFE3 is a 3D version of the classic cellular-automaton game. A good
- reference is A K Dewdney's COMPUTER RECREATIONS column in Scientific
- American.
-
- New Features
- Now uses whole CRT ( 344x218 screen )
- note: LIFE3 recenters screen. If you choose ToBack the old center is
- restored for your other applications. After returning to LIFE3 select
- the menu and LIFE3 will recenter.
- Faster graphics and generation routines
- Can now select ToBack during runs, runs in backround WITHOUT drawing (faster)
- to see latest universe after returning select VIEW or ORIGIN
- New commands: MERGE, ->SEED, SEED->
- More efficient storage- arrays increased to 4000
- General fix of glitches in last version
-
- Commercial 1
- This is a shareware program. If you find it useful please send $20 to:
- Bob Benedict
- 155 Barnes Dr
- Tallmadge, Ohio 44278
- and I'll sent you a disk with the latest version, source and examples.
- If you're not interested in the source, send what you think is appropriate.
-
- Commercial 2
- 3D life has explored heavily by Carter Bays who will send you
- a 40 page document on it for $3 to cover costs. His address is
- Carter Bays
- Dept. of Computer Science
- University of South Carolina
- Columbia, S.C. 29028
-
- Commercial 3
- A 3D Life program is available from Carter Bays for the MAC for $19 ( $29
- for a MAC+ version ). His program is NOT shareware and we are not in any
- way connected.
-
- LIFE3
- 3D life is played on a 3D grid of cubic cells. Cells in this version have
- two states: alive or dead. Each suceeding generation is created by using
- a count of the live neighbors of a cell and a set of rules. If a cell is
- live and it has less than EL neighbors or more than EU neighbors it dies.
- Otherwise it continues to live. If a cell is dead and it has less than
- FL neighbors or greater than FU neighbors it continues to stay dead. Otherwise
- it comes to life.
-
- FL, FU, EL ,and EU are parameters that control the laws of the universe the
- cells live in. These may be adjusted by taking the "LAWS" pick from the "RUN"
- menu. Remember to hit RETURN after entering a value in a string gadget.
-
- Cells in this AMIGA version live in a finite 32x32x32 universe. The surface
- of this cube ( any coordinate 0 or 31) is sterile. The universe can be
- initially populated three ways: a file can be LOADed, the EDIT option can
- be used or the a region filled with the RANDOM option. When a file is loaded
- the universe is first cleared. When a file is MERGEd it is merged with the
- existing universe.
-
- The EDIT menu pick opens a 32x32 (x,y) window on a slice (z=constant) of the
- universe. The slider is used to pick the slice to edit. A mouse click will
- toggle a cell on or off. The edited universe is stored in the "seed"
- universe and used to compute new generations.
-
- The RANDOM menu pick clears the "seed" universe and then fills a rectangular
- region centered around the ORIGIN with the density of live cells that you
- choose. The actual number of cells set on is usually less than the density
- times the volume since a location may be chosen more than once. The random
- number generator uses the algorithm from Wichman and Hill's MARCH 87 BYTE
- article. The generators are seeded by the system clock each time RANDOM
- is chosen.
-
- The LOAD menu pick loads the seed universe from a file. The file also
- contains the law setting for that universe. The files used are straight ASCII
- text files that may be generated with a text editor or another program
- ( in case you don't trust my random number generators). The STORE menu
- pick stores the current seed universe ( usually NOT the universe displayed!!).
- The ->SEED menu pick stores the current universe in the "seed" universe.
- This lets you STORE that universe in a file. Its complement SEED-> reseeds
- the universe to replay the last seed.
-
- The ORIGIN menu pick sets the origin that is the center of the present view.
- The VIEW menu pick sets the location of your eye. You'r so interested in
- the origin that you always look directly at it. The view, origin and cells
- are all relative to a global right hand coordinate system ( y up, z out).
-
- To run the next generation just click with the select button in the window.
- To run many steps use the RUN menu pick. A mouse click will stop a multi-
- step run. The number of steps is bounded at 10000 to prevent strange behavior
- if you forget to hit return after entering a value in the string gadget.
- You can now select ToBack during runs. LIFE3 will run in the backround WITHOUT
- drawing cubes ( much faster ). To see latest universe after returning select
- VIEW or ORIGIN.
-
- Algorithm
- A sparse matrix technique is used to create new generations. A universe
- has two representations: a 32x32 array of integers as a bit map and an
- array of structures that hold coordinates of live cells and some info used in
- rendering. Only cells adjacent to live cells are checked in generating a
- new universe. A spare bit map is used to keep track of cells checked so that
- no cell is checked twice. This cuts the amount of checking down by several
- orders of magnitude. A live cell has its bit set in the bitmap and is stored
- in the cell array. Its distance along the line from the eye to the origin
- is computed and the cells sorted in decreasing order. The cell list is clipped
- to remove cells behind the eye and the cells rendered with the most distant
- cells first.
-
- This approach works well for a large universe that is sparsely populated.
- One drawback is that the number of cells living can not exceed the size of the
- cells array. The present version uses arrays that hold up to 4000 cells.
-
- This program was written in MANX C (3.4). It has no assembly language
- routines. I'd like to thank Henry Shilling for his help with the C language
- and the cantankerous C compiler. Also thanks to Charlie Heath for the slick
- file requester.
-
- Next Steps
- Adding copy, cut and insert to the editor to ease seed generation, as
- well as commands to rotate the pattern in the clip.
- Adding wraparound instead of death at the universe surfaces.
- What would you like to see?
-
-
- Growing Seeds
-
- Hints extracted from Carter Bays paper:
-
- Some laws lead to explosive growth. This can be used to fill a seed universe
- from a single cell or a sparse random pattern. Using the notation
- ( EL EU FL FU )
- (1 26 1 26) leads from a single cell to a cube
- (1 9 1 9) leads from a single cell to a hollow cube with some internal
- structure
- (4 5 1 2) leads from a random pattern to some interesting seeds
-